package com.meida.module.bus.provider.service;

import com.meida.common.mybatis.base.service.IBaseService;
import com.meida.common.mybatis.entity.EntityMap;
import com.meida.common.mybatis.model.ResultBody;
import com.meida.module.bus.client.entity.BusProject;

import java.util.List;
import java.util.Map;

/**
 * 项目表 接口
 *
 * @author flyme
 * @date 2020-09-25
 */
public interface BusProjectService extends IBaseService<BusProject> {
    List<String> getProjectCodes(Long userId);
    /**
     * 查询所有项目以及版本和创建人并分页
     *
     * @param params
     * @return
     */
    ResultBody pageList2(Map params);


    List<EntityMap> initData(Map map);


    ResultBody purchasePageList(Map params);

    /**
     * 更新项目状态
     *
     * @param projectId
     */
    ResultBody updateProjectStus(Long projectId, Integer status);

    /**
     * 查找项目
     */
    BusProject findByProjectCode(String projectCode);

    /**
     * 用户分配项目
     */
    void saveUserProjects(Long userId, String... projectIds);

    /**
     * 保存项目对应分配部门
     *
     * @param projectId
     * @param deptIds
     */
    void saveDeptProjects(Long projectId, String... deptIds);

    /**
     * 获取项目分配部门
     *
     * @param
     * @param projectId
     */
    ResultBody getDeptProjects(Long projectId);

    /**
     * 移除分配项目
     */
    void removeProjectdepts(Long deptId);

    /**
     * 移除分配项目
     */
    void removeProjects(Long userId);

    /**
     * 获取用户分配项目Id
     */
    List<String> getUserProjectIds(Long userId);

    /**
     * 获取用户分配项目列表
     */
    ResultBody getUserProjectList(Long userId);

    /**
     * 获取项目信息
     */
    EntityMap getProjectInfo(Long projectId);

    /**
     * 项目对外验工月报状态提交oa审核
     */
    ResultBody setReportOutStateCheck(Long projectId);

    /**
     * 更新项目对外月报状态
     */
    Boolean updateReportOutState(Long projectId, Integer reportOutState);
}
